<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试报告</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.0/dist/css/bootstrap.min.css"
          integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
    <!--    页面样式-->
    <style type="text/css">
        /*标题样式*/
        .title {
            width: auto;
            height: 60px;
            text-align: center;
            font: bolder 38px/60px "Microsoft YaHei UI";
        }

        /*汇总信息样式*/
        .summary {
            width: 90%;
            position: absolute;
            top: 120px;
            margin-left: 5%;

        }

        .text-left {
            font: bolder 20px/30px "Microsoft YaHei UI";
        }

        .left {
            width: 50%;
            float: left;

        }

        .right {
            width: 50%;
            float: right;

        }

        .desc {
            float: left;
            width: 100%;
        }

        .list-group-item span {
            font: normal 16px/38px "Microsoft YaHei UI";
            padding: 30px;

        }

        .list-group-item {
            position: relative;
            display: block;
            padding: .4rem 1.25rem;
            background-color: #fff;
            border: 1px solid rgba(0, 0, 0, .125);
        }

        /* 执行信息样式   */
        .test_info {
            width: 90%;
            position: absolute;
            top: 900px;
            margin-left: 5%;

            color: #28a745 !important;
        }

        .table td, th {
            border: solid 2px rgba(9, 122, 51, 0.11) !important;
            padding: 0;
            line-height: 40px;
            text-align: center;

        }


        select {
            border: 0;
            padding: 0;
            margin: 0;
            height: 2em;
            width: 8em;
            margin-left: 2em;
        }

        option {
            text-align: center;
            height: 36px;
            font: none 18px/36px "Microsoft YaHei UI";
            color: #28a745 !important;
        }

        .test_log {
            background: rgba(163, 171, 189, 0.15);
            width: 100%;
            height: 50px;
            border-top: none;
            border-bottom: none;
            display: none;
            text-align: left;
        }

        .test_log td {
            text-align: left;
            height: 30px;
            margin: 0;
            padding-left: 3em;
            padding-right:3em;
            font: none 18px/24px "Microsoft YaHei UI";
            color: #9e141a;
        }

        pre {
            margin: 0;
            white-space: pre-wrap;
            white-space: -moz-pre-wrap;
            white-space: -o-pre-wrap;
            word-wrap: break-word;
            line-height: 22px;
            font-size: 14px
        }

        /*    测试图表显示*/
        .char {
            width: 90%;
            position: absolute;
            top: 450px;
            margin-left: 5%;
            color: #28a745 !important;
        }

    </style>

</head>
<body>

<!--报告标题-->
<div class="title text-success">
    <div class="shadow-lg p-3 mb-5 bg-white rounded">p2p金融项目测试报告</div>
</div>

<!--汇总信息-->
<div class="summary">
    <p class="text-left text-success">测试结果汇总</p>
    <div class="left">
        <ul class="list-group">
            <li class="list-group-item">
                <button type="button" class="btn btn-success">测试人员</button>
                <span class="text-dark">金融项目</span>
            </li>
            <li class="list-group-item">
                <button type="button" class="btn btn-success">开始时间</button>
                <span class="text-dark">2021-09-03 14:53:14</span>
            </li>
            <li class="list-group-item">
                <button type="button" class="btn btn-success">执行时间</button>
                <span class="text-dark">71.55 S</span>
            </li>
            <li class="list-group-item">
                <button type="button" class="btn btn-success">用例总数</button>
                <span class="text-dark">46</span>
            </li>


        </ul>
    </div>
    <div class="right">
        <ul class="list-group">

            <li class="list-group-item">
                <button type="button" class="btn btn-success">成功用例</button>
                <span class="text-success">42</span>
            </li>
            <li class="list-group-item">
                <button type="button" class="btn btn-warning">失败用例</button>
                <span class="text-warning">4</span>
            </li>
            <li class="list-group-item">
                <button type="button" class="btn btn-danger">错误用例</button>
                <span class="text-danger">0</span>
            </li>
            <li class="list-group-item">
                <button type="button" class="btn btn-secondary">跳过用例</button>
                <span class="text-secondary">0</span>
            </li>
        </ul>
    </div>
    <div class="desc">
        <ul class="list-group">
            <li class="list-group-item">
                <button type="button" class="btn btn-success">描述信息</button>
                <span class="text-secondary">v1.0</span>
            </li>
        </ul>
    </div>


</div>

<!--测试图表-->
<div class="char">
    <p class="text-left text-success">图表展示</p>
    <div id="char2" style="width: 49%;height: 400px;float: left"></div>
    <div id="char" style="width: 49%;height: 400px ;float: left"></div>
</div>

<!--详细信息-->
<div class="test_info">

    <p class="text-left text-success">详细信息</p>
    <div class="table_data">

        <table class="table">
            <thead class="bg-success text-light">
            <tr>
                <th scope="col" style="width: 5%;padding: 0">编号</th>
                <th scope="col" style="width: 20%;padding: 0">
                    <span>测试类</span>
                    <select id="testClass">
                        <option>所有</option>
                        
                            <option>TestRegLogin</option>
                        
                            <option>TestOpenAccount</option>
                        
                            <option>TestRecharge</option>
                        
                            <option>TestTender</option>
                        
                    </select>

                </th>

                <th scope="col" style="width: 15%;padding: 0">测试方法</th>
                <th scope="col" style="width: 20%;padding: 0">用例描述</th>
                <th scope="col" style="width: 10%;padding: 0">执行时间</th>
                <th scope="col" style="width: 20%;padding: 0">

                    <span>执行结果</span>
                    <select id="testResult">
                        <option>所有</option>
                        <option class="text-success">成功</option>
                        <option class="text-warning">失败</option>
                        <option class="text-danger">错误</option>
                        <option class="text-info">跳过</option>
                    </select>

                </th>
                <th scope="col" style="width: 10%;padding: 0">详细信息</th>
            </tr>
            </thead>
            <tbody>
            
                <tr>
                    <td>1</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test01_img_verify_code_0_0_123123</td>
                    <td>None</td>
                    <td>0.105s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_img_verify_code_0_0_123123 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>2</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test01_img_verify_code_1_123123</td>
                    <td>None</td>
                    <td>0.101s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_img_verify_code_1_123123 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>3</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test01_img_verify_code_2_sss</td>
                    <td>None</td>
                    <td>0.0937s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_img_verify_code_2_sss (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>4</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test01_img_verify_code_3_</td>
                    <td>None</td>
                    <td>0.0868s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_img_verify_code_3_ (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>5</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test02_phone_verify_code_0_13148939905</td>
                    <td>None</td>
                    <td>0.183s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>{'Server': 'nginx/1.10.1', 'Date': 'Fri, 03 Sep 2021 06:53:16 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Content-Length': '49', 'Connection': 'keep-alive'}
test02_phone_verify_code_0_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>6</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test02_phone_verify_code_1_13148939905</td>
                    <td>None</td>
                    <td>0.14s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>{'Server': 'nginx/1.10.1', 'Date': 'Fri, 03 Sep 2021 06:53:16 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Content-Length': '52', 'Connection': 'keep-alive'}
test02_phone_verify_code_1_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>7</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test02_phone_verify_code_2_13148939905</td>
                    <td>None</td>
                    <td>0.142s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>{'Server': 'nginx/1.10.1', 'Date': 'Fri, 03 Sep 2021 06:53:16 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Content-Length': '52', 'Connection': 'keep-alive'}
test02_phone_verify_code_2_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>8</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_0_13148939905</td>
                    <td>None</td>
                    <td>0.289s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_0_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>9</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_1_13148939955</td>
                    <td>None</td>
                    <td>0.276s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_1_13148939955 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>10</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_2_13148939965</td>
                    <td>None</td>
                    <td>0.218s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_2_13148939965 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>11</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_3_13148939975</td>
                    <td>None</td>
                    <td>0.225s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_3_13148939975 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>12</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_4_13148939985</td>
                    <td>None</td>
                    <td>0.245s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_4_13148939985 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>13</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_5_13148939995</td>
                    <td>None</td>
                    <td>0.26s</td>
                    
                        <td class="text-warning">失败</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_5_13148939995 (script.test01_reg_login.TestRegLogin)执行——>【失败】
</pre>
                        

                            <pre>Traceback (most recent call last):
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 59, in testPartExecutor
    yield
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 628, in run
    testMethod()
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\site-packages\parameterized\parameterized.py", line 530, in standalone_func
    return func(*(a + p.args), **p.kwargs)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\script\test01_reg_login.py", line 91, in test03_register
    utils.common_assert(self, res, exp_status_code, exp_status, exp_description)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\utils.py", line 83, in common_assert
    testCase.assertEqual(exp_status, res_dict.get("status"))
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 852, in assertEqual
    assertion_func(first, second, msg=msg)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 845, in _baseAssertEqual
    raise self.failureException(msg)
</pre>
                        

                            <pre>AssertionError: 100 != 200
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>14</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_6_13148939905</td>
                    <td>None</td>
                    <td>0.215s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_6_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>15</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test03_register_7_13148939959</td>
                    <td>None</td>
                    <td>0.267s</td>
                    
                        <td class="text-warning">失败</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_register_7_13148939959 (script.test01_reg_login.TestRegLogin)执行——>【失败】
</pre>
                        

                            <pre>Traceback (most recent call last):
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 59, in testPartExecutor
    yield
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 628, in run
    testMethod()
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\site-packages\parameterized\parameterized.py", line 530, in standalone_func
    return func(*(a + p.args), **p.kwargs)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\script\test01_reg_login.py", line 91, in test03_register
    utils.common_assert(self, res, exp_status_code, exp_status, exp_description)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\utils.py", line 83, in common_assert
    testCase.assertEqual(exp_status, res_dict.get("status"))
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 852, in assertEqual
    assertion_func(first, second, msg=msg)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 845, in _baseAssertEqual
    raise self.failureException(msg)
</pre>
                        

                            <pre>AssertionError: 100 != 200
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>16</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test04_user_login_0_13148939905</td>
                    <td>None</td>
                    <td>0.124s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test04_user_login_0_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>17</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test04_user_login_1_</td>
                    <td>None</td>
                    <td>0.0967s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test04_user_login_1_ (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>18</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test04_user_login_2_13148939905</td>
                    <td>None</td>
                    <td>0.0918s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test04_user_login_2_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>19</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test04_user_login_3_13148939905</td>
                    <td>None</td>
                    <td>0.111s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test04_user_login_3_13148939905 (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>20</td>
                    <td class="TestRegLogin">TestRegLogin</td>
                    <td>test05_user_login_password_error</td>
                    <td>None</td>
                    <td>60.3s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test05_user_login_password_error (script.test01_reg_login.TestRegLogin)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>21</td>
                    <td class="TestOpenAccount">TestOpenAccount</td>
                    <td>test01_realname_0__</td>
                    <td>None</td>
                    <td>0.195s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_realname_0__ (script.test02_open_account_api.TestOpenAccount)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>22</td>
                    <td class="TestOpenAccount">TestOpenAccount</td>
                    <td>test01_realname_1_</td>
                    <td>None</td>
                    <td>0.191s</td>
                    
                        <td class="text-warning">失败</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_realname_1_ (script.test02_open_account_api.TestOpenAccount)执行——>【失败】
</pre>
                        

                            <pre>Traceback (most recent call last):
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 59, in testPartExecutor
    yield
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 628, in run
    testMethod()
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\site-packages\parameterized\parameterized.py", line 530, in standalone_func
    return func(*(a + p.args), **p.kwargs)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\script\test02_open_account_api.py", line 37, in test01_realname
    utils.common_assert(self,res,exp_status_code,exp_status,exp_description)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\utils.py", line 83, in common_assert
    testCase.assertEqual(exp_status, res_dict.get("status"))
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 852, in assertEqual
    assertion_func(first, second, msg=msg)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 845, in _baseAssertEqual
    raise self.failureException(msg)
</pre>
                        

                            <pre>AssertionError: 100 != 200
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>23</td>
                    <td class="TestOpenAccount">TestOpenAccount</td>
                    <td>test01_realname_2__</td>
                    <td>None</td>
                    <td>0.202s</td>
                    
                        <td class="text-warning">失败</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_realname_2__ (script.test02_open_account_api.TestOpenAccount)执行——>【失败】
</pre>
                        

                            <pre>Traceback (most recent call last):
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 59, in testPartExecutor
    yield
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 628, in run
    testMethod()
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\site-packages\parameterized\parameterized.py", line 530, in standalone_func
    return func(*(a + p.args), **p.kwargs)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\script\test02_open_account_api.py", line 37, in test01_realname
    utils.common_assert(self,res,exp_status_code,exp_status,exp_description)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\utils.py", line 83, in common_assert
    testCase.assertEqual(exp_status, res_dict.get("status"))
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 852, in assertEqual
    assertion_func(first, second, msg=msg)
</pre>
                        

                            <pre>  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 845, in _baseAssertEqual
    raise self.failureException(msg)
</pre>
                        

                            <pre>AssertionError: 100 != 200
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>24</td>
                    <td class="TestOpenAccount">TestOpenAccount</td>
                    <td>test02_open_account</td>
                    <td>None</td>
                    <td>0.212s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_open_account (script.test02_open_account_api.TestOpenAccount)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>25</td>
                    <td class="TestOpenAccount">TestOpenAccount</td>
                    <td>test03_third_open_account</td>
                    <td>None</td>
                    <td>0.665s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_third_open_account (script.test02_open_account_api.TestOpenAccount)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>26</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test01_get_recharge_verify_code_0_0_123123</td>
                    <td>None</td>
                    <td>0.172s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_get_recharge_verify_code_0_0_123123 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>27</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test01_get_recharge_verify_code_1_123123</td>
                    <td>None</td>
                    <td>0.173s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_get_recharge_verify_code_1_123123 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>28</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test01_get_recharge_verify_code_2_sss</td>
                    <td>None</td>
                    <td>0.167s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_get_recharge_verify_code_2_sss (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>29</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test01_get_recharge_verify_code_3_</td>
                    <td>None</td>
                    <td>0.188s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_get_recharge_verify_code_3_ (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>30</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test02_recharge_0_100000</td>
                    <td>None</td>
                    <td>0.241s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_recharge_0_100000 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>31</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test02_recharge_1_100000</td>
                    <td>None</td>
                    <td>0.223s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_recharge_1_100000 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>32</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test02_recharge_2_100000</td>
                    <td>None</td>
                    <td>0.222s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_recharge_2_100000 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>33</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test02_recharge_3_</td>
                    <td>None</td>
                    <td>0.223s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_recharge_3_ (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>34</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test02_recharge_4_0</td>
                    <td>None</td>
                    <td>0.23s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_recharge_4_0 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>35</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test02_recharge_5__1000</td>
                    <td>None</td>
                    <td>0.215s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_recharge_5__1000 (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>36</td>
                    <td class="TestRecharge">TestRecharge</td>
                    <td>test03_third_recharge</td>
                    <td>None</td>
                    <td>0.66s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test03_third_recharge (script.test03_recharge.TestRecharge)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>37</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_0_13148939905</td>
                    <td>None</td>
                    <td>0.185s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_0_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>38</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_1_13148939905</td>
                    <td>None</td>
                    <td>0.179s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_1_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>39</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_2_13148939905</td>
                    <td>None</td>
                    <td>0.178s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_2_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>40</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_3_13148939905</td>
                    <td>None</td>
                    <td>0.182s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_3_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>41</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_4_13148939905</td>
                    <td>None</td>
                    <td>0.187s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_4_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>42</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_5_13148939905</td>
                    <td>None</td>
                    <td>0.172s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_5_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>43</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_6_13610001020</td>
                    <td>None</td>
                    <td>0.179s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_6_13610001020 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>44</td>
                    <td class="TestTender">TestTender</td>
                    <td>test01_tender_7_13148939905</td>
                    <td>None</td>
                    <td>0.179s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test01_tender_7_13148939905 (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>45</td>
                    <td class="TestTender">TestTender</td>
                    <td>test02_third_tender</td>
                    <td>None</td>
                    <td>0.94s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>test02_third_tender (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            
                <tr>
                    <td>46</td>
                    <td class="TestTender">TestTender</td>
                    <td>test03_tender_process</td>
                    <td>None</td>
                    <td>0.138s</td>
                    
                        <td class="text-success">成功</td>
                    
                    <td>
                        <button type="button" class="btn btn-success btn_info">查看详情</button>
                    </td>
                </tr>

                <tr class="test_log">

                    <td colspan="7" class="small text-muted" style=" word-wrap:break-word; word-break:break-all">
                        

                            <pre>Traceback (most recent call last):
  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\script\test04_tender_api.py", line 88, in test03_tender_process
    utils.common_assert(self,res,exp_status_code,exp_status,"短信发送成功")
  File "D:\9期测试基础班\第八阶段_金融项目\day05\mock\p2pApiTest\utils.py", line 83, in common_assert
    testCase.assertEqual(exp_status, res_dict.get("status"))
  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 852, in assertEqual
    assertion_func(first, second, msg=msg)
  File "D:\9期测试基础班\Python3.7\lib\unittest\case.py", line 845, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 200 != 100
test03_tender_process (script.test04_tender_api.TestTender)执行——>【通过】
</pre>
                        
                        
                    </td>
                </tr>
            

            </tbody>
        </table>
    </div>

    <div style="height: 200px"></div>
</div>

<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"
        integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
        crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>

<script>
    var tbodyTr = $('tbody tr');
    var testResult = $("#testResult");
    var testClass = $("#testClass");
    <!--    用例执行详细信息显示切换-->
    $(".btn_info").click(function () {
        $(this).parent().parent().next().toggle();

    });
    // 当选择用例类之后触发
    testClass.change(function () {
        var cls = $(this).val();
        var res = testResult.val();
        elementDisplay(cls, res);
        sort()
    });
    testResult.change(function () {
        var res = $(this).val();
        var cls = testClass.val();
        elementDisplay(cls, res);
        sort()
    });

    function elementDisplay(cls, res) {
        // 用例数据的显示
        if (cls === "所有") {
            if (res === "所有") {
                tbodyTr.has('button').show();
            } else if (res === '成功') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.text-success').show()

            } else if (res === '失败') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.text-warning').show()

            } else if (res === '错误') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.text-danger').show()

            } else if (res === '跳过') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.text-info').show()
            }
        } else {
            if (res === "所有") {
                tbodyTr.hide();
                tbodyTr.has('button').has('.' + cls + '').show()
            } else if (res === '成功') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.' + cls + '').has('.text-success').show()
            } else if (res === '失败') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.' + cls + '').has('.text-warning').show()
            } else if (res === '错误') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.' + cls + '').has('.text-danger').show()
            } else if (res === '跳过') {
                tbodyTr.hide();
                tbodyTr.has('button').has('.' + cls + '').has('.text-info').show()
            }
        }
    }

    function sort() {
        //重新排列显示序号
        // 选择所有可以见的tr
        var visibleTr = tbodyTr.filter(":visible");

        visibleTr.each(function (index, element) {
            element.firstElementChild.innerHTML = index + 1;

        })

    }


</script>

<script type="text/javascript">
    // 基于准备好的dom，初始化echarts实例
    var myChart = echarts.init(document.getElementById('char'));
    var myChart2 = echarts.init(document.getElementById('char2'));
    // 指定图表的配置项和数据
    option = {
        color: ['#00a10a', '#ddb518', 'rgba(204,46,41,0.73)', '#85898c'],
        tooltip: {
            trigger: 'item',
            formatter: '{a} <br/>{b}: {c} ({d}%)'
        },
        legend: {
            orient: 'vertical',
            left: 10,
            data: ['通过', '失败', '错误', '跳过']
        },
        series: [
            {
                name: '测试结果',
                type: 'pie',
                radius: ['50%', '70%'],
                avoidLabelOverlap: false,
                label: {
                    show: false,
                    position: 'center'
                },
                emphasis: {
                    label: {
                        show: true,
                        fontSize: '30',
                        fontWeight: 'bold'
                    }
                },
                labelLine: {
                    show: false
                },
                data: [
                    {value: 42, name: '通过'},
                    {value: 4, name: '失败'},
                    {value: 0, name: '错误'},
                    {value: 0, name: '跳过'}
                ]
            }
        ]
    };
    option2 = {
        tooltip: {
            formatter: '{a} <br/>{b} : {c}%'
        },
        toolbox: {
            feature: {
                restore: {},
                saveAsImage: {}
            }
        },
        series: [
            {
                name: '测试结果',
                type: 'gauge',
                detail: {formatter: '91.30%'},
                data: [{value: '91.30', name: '用例通过率'}],
                axisLine: {
                    lineStyle: {
                        color: [
                            [0.2, '#c20000'],
                            [0.8, '#ddb518'],
                            [1, '#00a10a']]
                    }
                }
            }
        ]
    };


    myChart2.setOption(option2);
    // 使用刚指定的配置项和数据显示图表。
    myChart.setOption(option);
</script>


</body>
</html>